Adressage indirect en assembleur 68000 |
Le mode adressage indirect de base se décline en plusieurs sous-modes. La forme syntaxique de référence est un registre d'adresses entre parenthèses : (A2). Dans les exemples présentés ci-dessous pour illustrer les différentes variantes du mode indirect en assembleur 68000, seule la source ou la destination concerne ce mode. Dans toutes les variantes, le mode d'adressage indirect peut concerner le source et/ou la destination. |
||
Indirect |
L'adresse effective de la donnée est contenue dans un pointeur d'adresses. |
|
|
move.b d3, (A1) |
L'adresse effective de la destination est contenue dans A1. |
|
|
|
Indirect avec déplacement |
L'adresse effective est la somme du contenu du pointeur d'adresses et d'un déplacement fixe. |
|
|
move.b $42(A1), d2 |
L'adresse effective de la source est la somme de l'adresse contenue dans A1 et du déplacement $42. |
|
|
|
Indirect indexé |
L'adresse effective est la somme du contenu du pointeur d'adresses et d'un index contenu dans un registre de données. |
|
|
move.b (A1, d2.l), d4 |
L'adresse effective de la source est la somme de l'adresse contenue dans A1 et de la valeur de l'index contenue dans d2.l. |
|
|
|
Indirect indexé avec déplacement |
L'adresse effective est la somme du contenu d'un pointeur d'adresses, d'un déplacement fixe et d'un index contenu dans un registre de données. |
|
|
move.l d0, $70(A3,d4.l) |
L'adresse effective de la destination est la somme de l'adresse contenue dans A3, de la valeur de l'index contenue dans d2.l et du déplacement $70. |
|
|
|
Indirect post incrémenté |
L'adresse effective est contenue dans un pointeur d'adresses. Le pointeur
est incrémenté à la fin de l'instruction. L'incrément est fonction de la
taille de la donnée traitée : |
|
|
move.w (A3)+,d2 |
L'adresse effective de la source est contenue dans A3. A3 est incrémenté de 2 à la fin de l'instruction. |
|
|
|
Indirect pré décrémenté |
L'adresse effective de la source ou de la destination est contenue dans un
pointeur d'adresses. Le pointeur est décrémenté au début de l'instruction.
L'incrément est fonction de la taille de la donnée traitée : |
|
|
Move.l d4, -(A1) |
L'adresse effective de la destination est contenue dans A1. A1 est décrémenté de 4 au début de l'instruction. |